// 存储分类模块数据
import { topCategory } from '@/api/constants'
import { findAllCategory } from '@/api/category'
export default {
  namespaced: true,
  state () {
    return {
      // 分类集合信息
      // 如果默认是数组,看不见默认的9个分类,等数据加载完毕才会看见
      list: topCategory.map(item => ({ name: item }))
    }
  },
  // 加载数据成功后需要修改list
  mutations: {
    setList (state, headCategory) {
      state.list = headCategory
    },
    // 修改当前一级分类下的open数据为true
    show (state, item) {
      const category = state.list.find(category => category.id === item.id)
      category.open = true
    },
    // 修改当前一级分类下的open为false
    hide (state, item) {
      const category = state.list.find(category => category.id === item.id)
      category.open = false
    }
  },
  // 需要向后台加载数据,所以需要actions函数获取数据
  actions: {
    async getList ({ commit }) {
      const data = await findAllCategory()
      // 给一级分类加上一个控制二级分类显示隐藏的数据open
      data.result.forEach(item => {
        item.open = false
      })
      // 获取数据成功, 提交mutations进行数据更改
      commit('setList', data.result)
    }
  }
}
